﻿namespace LogManager.Gui.ViewModels
{
    using LogManager.Core.Models;
    using LogManager.Gui.UI.Representations;
    using LogManager.Gui.Views;
    using System.Collections.ObjectModel;
    using System.ComponentModel;
    using System.Windows.Input;

    /// <summary>
    /// TODO: Update summary.
    /// </summary>
    public interface IMainViewModel : IViewModel<IMainView>
    {
        IConfiguration Configuration { get; }
        ReadOnlyObservableCollection<IWarehouseViewModel> WarehousesVm { get; }
        ISettingsViewModel SettingsViewModel { get; }
        ICheckLocationsViewModel CheckLocationsViewModel { get; }
        IExecuteArchivingViewModel ExecuteArchivingViewModel { get; }
        string CurrentConfigurationPath { get; }
        ObservableCollection<LogItem> Logs { get; }
        ICommand OpenFileCommand { get; }
        ICommand CreateNewFileCommand { get; }
        ICommand SaveFileCommand { get; }
        ICommand SaveFileAsCommand { get; }
        ICommand AddWarehouseCommand { get; }
        void OpenDefault();
        void OpenFile(string filePath);
        void OnWindowClosing(CancelEventArgs e);

    }
}
